home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 1 / Meeting Pearls Vol 1 (1994).iso / installed_progs / gfx / lise2.1 / lise / src / cur.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-03-31  |  2.1 KB  |  107 lines

  1. #include <stdio.h>
  2. #ifdef AMIGA
  3. #include <gfxamiga.h>
  4. #else
  5. #include <gfx.h>
  6. #endif
  7.  
  8. help()
  9. {
  10. printf("get grafic cursor position\n");
  11. printf("options:\n");
  12. printf("   +tek     prints tektronix hardware coordinates (debugging)\n");
  13. printf("   -xy      do NOT print time (in ns) and peak height\n");
  14. printf("   -xc      do NOT print channel number (recalculated !)\n");
  15. printf("   -x       only returns channel number (usefull for script files)\n");
  16. printf("   -y       only returns peakheight (usefull for script files)\n");
  17. }
  18.  
  19. float frline(stream)
  20. FILE *stream;
  21. {
  22. int i,n;
  23. char c,s[80];
  24.  
  25.    fgets(s,80,stream);
  26.    return(atosf(s));
  27. }
  28.  
  29. main(argc,argv)
  30. int argc;
  31. char *argv[];
  32. {
  33. int n,x,y,xx,yy,
  34.       flg_tek=FALSE,
  35.       flg_xy=TRUE,
  36.       flg_xc=TRUE,
  37.       flg_x=FALSE,
  38.       flg_y=FALSE,
  39.       leftmargin,
  40.       bottommargin,
  41.       rightmargin,
  42.       topmargin,
  43.       _win_flg;
  44. float tmin,
  45.       tmax,
  46.       ymin,
  47.       ymax,
  48.       real_t,
  49.       real_y,
  50.       yfak,
  51.       tfak,
  52.       xoffset,
  53.       yoffset;
  54. char z[80];
  55. FILE *fp;
  56.  
  57. if(checkopt(argc,argv,"+tek",z)) flg_tek=TRUE;
  58. if(checkopt(argc,argv,"-xy",z)) flg_xy=FALSE;
  59. if(checkopt(argc,argv,"-xc",z)) flg_xc=FALSE;
  60. if(checkopt(argc,argv,"-x",z)) {
  61.    flg_xy=FALSE;
  62.    flg_xc=FALSE;
  63.    flg_x=TRUE;
  64. }
  65. if(checkopt(argc,argv,"-y",z)) {
  66.    flg_xy=FALSE;
  67.    flg_xc=FALSE;
  68.    flg_y=TRUE;
  69. }
  70. tekopen();
  71. getxy(&x,&y);
  72. close(_tek4014);
  73. if(flg_tek) printf("tektronix:  x=%d    y=%d\n",x,y);
  74.  
  75. /* calculating channel and time equivalents */
  76.  
  77. fp=fopen(ASHBDRY,"r");
  78. leftmargin = frline(fp);
  79. bottommargin = frline(fp);
  80. rightmargin = frline(fp);
  81. topmargin = frline(fp);
  82. _win_flg = frline(fp);
  83. tmin = frline(fp);
  84. tmax = frline(fp);
  85. ymin = frline(fp);
  86. ymax = frline(fp);
  87. _tica = frline(fp);
  88. fclose(fp);
  89.  
  90. yfak=(topmargin-bottommargin)/(ymax-ymin);
  91. tfak=(rightmargin-leftmargin)/(tmax-tmin);
  92. xoffset= ((- tmin) * tfak) + leftmargin;
  93. yoffset= ((- ymin) * yfak) + bottommargin;
  94.  
  95. real_t= (x - xoffset)/tfak;
  96. real_y= (y - yoffset)/yfak;
  97. xx= real_t / _tica;
  98.  
  99. if(flg_xy) printf("data:      x=%f    y=%f\n",real_t,real_y);
  100. if(flg_xc) printf("x-channel = %d\n",xx);
  101. if(flg_x) printf("%d\n",xx);
  102. if(flg_y) printf("%f\n",real_y);
  103.    exit(0);
  104. }
  105.  
  106.  
  107.